As demand continues for high capacity distributed data centers, virtualization technologies, including the use of virtual machines and software defined networking, have been leveraged to provide increased scalability and enhanced performance of network and computer resources. For instance, virtualization of resources, such as network, computer, and storage resources, allows abstraction of physical resources into logical representations, providing for flexibility in the provisioning and management of services and hardware infrastructure. In addition, virtualization can enable the deployment of multi-tenant data center infrastructures, in which multiple independent customer domains can be hosted using a single set of physical resources. In addition, virtualization can allow for virtual machines, such as virtual servers or clients, to be deployed with variable levels of computer resources, which can be increased or decreased as needed. Further, virtualization can allow for virtual machines to be located anywhere within a virtual network, and to have multiple different locations over time, due to, for example, migration.
However, some of the features that make virtualization technologies attractive can lead to problems. Underlying physical resources, such as real computers and network devices, can be harder to manage and track when services and software are virtualized because the physical locations are decoupled from the virtual locations. For example, larger amounts of network bandwidth and processing resources can be consumed due to a plurality of virtual machines sending and/or receiving data over the virtual networks.